package cn.iocoder.yudao.module.infra.convert.job;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobCreateReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobExcelVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobRespVO;
import cn.iocoder.yudao.module.infra.controller.admin.job.vo.job.JobUpdateReqVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.job.JobDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 定时任务 Convert
 *
 * @author 芋道源码
 */
@Mapper
public interface JobConvert {

    JobConvert INSTANCE = Mappers.getMapper(JobConvert.class);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code JobDO}
     */
    JobDO convert(JobCreateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code JobDO}
     */
    JobDO convert(JobUpdateReqVO bean);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code JobRespVO}
     */
    JobRespVO convert(JobDO bean);

    /**
     * 转换列表
     *
     * @param list 列表
     * @return {@code List<JobRespVO>}
     */
    List<JobRespVO> convertList(List<JobDO> list);

    /**
     * 转换分页
     *
     * @param page 分页
     * @return {@code PageResult<JobRespVO>}
     */
    PageResult<JobRespVO> convertPage(PageResult<JobDO> page);

    /**
     * 转换list02
     *
     * @param list 列表
     * @return {@code List<JobExcelVO>}
     */
    List<JobExcelVO> convertList02(List<JobDO> list);

}
